#ifndef __DHT11_H
#define __DHT11_H

#include "main.h"

// DHT11配置结构体
typedef struct {
    GPIO_TypeDef* GPIOx;    // DHT11连接的GPIO端口
    uint16_t GPIO_Pin;      // DHT11连接的GPIO引脚
} DHT11_ConfigTypeDef;

// DHT11数据结构体
typedef struct {
    uint8_t humi_int;       // 湿度整数部分
    uint8_t humi_deci;      // 湿度小数部分
    uint8_t temp_int;       // 温度整数部分
    uint8_t temp_deci;      // 温度小数部分
    uint8_t check_sum;      // 校验和
} DHT11_Data_TypeDef;

// 延时函数声明 - 需要外部实现
void delay_us(uint32_t us);

// 函数原型
void DHT11_Init(DHT11_ConfigTypeDef *config);
uint8_t DHT11_Read_TempAndHumidity(DHT11_ConfigTypeDef *config, DHT11_Data_TypeDef *DHT11_Data);
extern DHT11_ConfigTypeDef dht11_sensor1,dht11_sensor2,dht11_sensor3,dht11_sensor4;
extern DHT11_Data_TypeDef data1, data2, data3,data4;
#endif
